Жизненный цикл модуля
Состояния модуля
CREATE ──► RUN ──► ASSETS_READY ──► FINISH
│
▼
ERROR
| Состояние | Описание |
|---|---|
| CREATE | Контейнер запущен, SDK инициализируется |
| RUN | Ваша функция выполняется — идет сбор данных |
| ASSETS_READY | Данные собраны, ожидание передачи пакетов Keeper'у |
| FINISH | Все пакеты переданы, модуль готов к остановке |
| ERROR | Произошла ошибка, модуль будет остановлен |
Последовательность событий
-
Keeper запускает Docker-контейнер с вашим модулем
-
SDK запускает HTTP-сервер на порту из конфига (поле
additional.port) -
SDK переводит статус в
RUNи вызывает вашу функцию -
Ваша функция собирает данные и добавляет их через
scan_status_storage -
SDK автоматически разбивает данные на чанки (пакеты) по
max_chunk_sizeассетов -
После завершения вашей функции SDK переводит статус в
ASSETS_READY(если есть данные) илиFINISH -
Keeper забирает пакеты через
GET /scan/status, подтверждает черезPOST /scan/got-packet -
Когда все пакеты доставлены, статус переходит в
FINISH -
Keeper отправляет
POST /scan/shutdown, контейнер останавливается